package com.ys.erp.stage_user_service.bean.condition;

import com.ys.erp.framework.annotation.valid.DateValid;
import com.ys.erp.framework.annotation.valid.MoneyValid;
import com.ys.erp.framework.annotation.valid.TimeValid;
import com.ys.erp.framework.condition.BasePageCondition;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * @author lwj
 * @date 2025/5/29
 */
@Data
public class UserCondition {

    @EqualsAndHashCode(callSuper = true)
    @Data
    @Schema(description = "用户分页")
    public static class PageUserCon extends BasePageCondition {

        @Schema(description = "会员等级")
        protected Long memberLevelId;

        @Schema(description = "会员名称")
        private String name;

        @Schema(description = "会员手机")
        private Long phone;

        @Schema(description = "会员id")
        private Long id;

        @Schema(description = "宠物编号")
        private String catCode;

        @Schema(description = "会员门店名称")
        private String shopName;

        @Schema(description = "履约手机号")
        private String maintainPhone;

        @Min(0)
        @Schema(description = "是否可核销")
        private Integer isCanWriteOff;

        @Schema(description = "会员渠道来源")
        private String empRemark;

        @Schema(description = "渠道来源")
        private List<String> channelEmpIds;

        @Schema(description = "渠道来源类型")
        private String channelSourceType;

        @TimeValid
        @Schema(description = "会员宠物创建时间")
        private String catStartTime;

        @TimeValid
        @Schema(description = "会员宠物创建时间")
        private String catEndTime;

        @DateValid
        @Schema(description = "起始领走时间")
        private String startTakeDate;

        @DateValid
        @Schema(description = "结束领走时间")
        private String endTakeDate;

    }


}
